# 总体思路：奇数的最大奇数约数就是自己。对于偶数只能一直除2，直到得到一个奇数即为最大奇数约数
# 比如n=10，即1 2 3 4 5 6 7 8 9 10 。此时奇数有1 3 5 7 9 ，将这几个奇数相加
# 然后n/2，得到第二轮序列序列 1 2 3 4 5 分别对应上次的2 4 6 8 10 五个偶数，其中1 3 5是2 6 10的最大奇约数。依次类推

# 当n为偶数，就有n/2个奇数，根据等差数列求和公式 即(（首项+末项）*项数)/2,则n/2个奇数和为((1+n-1)*n/2)/2,
# 即为(n/2) * (n/2),此时n为偶数，因此 (n/2) * (n/2) = ((n+1)/2) * ((n+1)/2)

# 当n为奇数，有(n+1)/2个奇数，此时奇数和为((n+1)/2) * ((n+1)/2)
# 因此两种情况可以用一个等式来总结

n = int(raw_input())
res = 0
while n:
    res += ((n+1)/2)**2
    n /= 2
print(res)